#include "../header.h"

//进程接收到系统信号又三种表现：1 忽略 2捕捉 3 缺省
void sigfun(int signo)
{
    if(signo == SIGINT)   //! ctrl + c
        printf("SIGINT 此信号已经被编程!\n");
    //! ctrl + '\'
    if(signo == SIGQUIT)  
        printf("SIGQUIT 此信号已经被编程!\n");
     if(signo == SIGTSTP) //! ctrl + z 
        printf("SIGTSTP 此信号已经被编程!\n");
}

int main(int argc, char const *argv[])
{
    //1 信号注册 / 信号捕捉  / 信号编程
    signal(SIGINT,sigfun);
    signal(SIGQUIT,sigfun);
    signal(SIGTSTP,sigfun);

    int num = 10;
    while (num--)
    {
        printf("this is signal test:%d\n",getpid());
        sleep(1);
    }
    //2.信号恢复  10秒钟以后都恢复
    // signal(SIGINT,SIG_DFL);
    // signal(SIGQUIT,SIG_DFL);
    // signal(SIGTSTP,SIG_DFL);
    //忽略形式
    signal(SIGINT,SIG_IGN);
    signal(SIGQUIT,SIG_IGN);
    signal(SIGTSTP,SIG_IGN);
    //按下暂停键。
    pause();

    return 0;
}
